package cn.itcalvin.sncoal.cth.service;

import cn.itcalvin.sncoal.cth.pojo.common.*;
import cn.itcalvin.sncoal.cth.pojo.req.user.*;
import cn.itcalvin.sncoal.cth.pojo.response.user.RespUserList;
import cn.itcalvin.vo.Message;

import java.util.List;

public interface InfoUserService{

    /**
     * 登录
     * @param reqLogin
     * @return
     */
    Message<RespUserInfo> login(ReqLogin reqLogin);

    /**
     * 获取用户信息
     * @param id
     * @return
     */
    Message<RespUserInfoEx> getUserInfo(Long id);

    /**
     * 修改登录密码
     * @param id
     * @param reqModifyLoginPwd
     * @return
     */
    Message<RespUserInfo> modifyLoginPwd(Long id, ReqModifyLoginPwd reqModifyLoginPwd);

    /**
     * 重置登录密码
     * @param reqIdList
     * @return
     */
    Message resetLoginPassword(ReqIdList reqIdList);

    /**
     * 用户列表
     * @param reqUserList
     * @return
     */
    Message<List<RespUserList>> list(ReqUserList reqUserList);

    /**
     * 修改登录账号状态
     * @param reqUserModifyState
     * @return
     */
    Message modifyState(ReqUserModifyState reqUserModifyState);

    /**
     * 新增用户
     * @param reqUserAdd
     * @return
     */
    Message add(ReqUserAdd reqUserAdd);

    /**
     * 修改用户信息
     * @param reqUserModify
     * @return
     */
    Message modify(ReqUserModify reqUserModify);

    /**
     * 删除
     * @param reqLong
     * @return
     */
    Message delete(ReqLong reqLong);
}
